package cn.xorange.commons.system.mapper.system;

import cn.xorange.commons.data.core.mapper.MBaseMapper;
import cn.xorange.commons.system.entity.system.SysOrg;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author : yangjian
 * date : 2022/2/24
 */
@Mapper
public interface SysOrgMapper extends MBaseMapper<SysOrg> {

    List<SysOrg> selectManageOrgList(SysOrg sysOrg);

    Map<String, String> selectDataScope(@Param("userId")Long userId);

    int checkOrgNameUnique(SysOrg sysOrg);

    /**
     * 根据ID查询所有子部门（正常状态）
     *
     * @param deptId 部门ID
     * @return 子部门数
     */
    int selectNormalChildrenDeptById(Long deptId);

    /**
     * 是否存在子节点
     * @param deptId 部门ID
     * @return 结果
     */
    int hasChildByDeptId(Long deptId);
    /**
     * 修改所在部门正常状态
     * @param deptIds 部门ID组
     */
    void updateDeptStatusNormal(Long[] deptIds);

    /**
     * 查询部门是否存在用户
     * @param deptId 部门ID
     * @return 结果
     */
    int checkDeptExistUser(Long deptId);


}
